package cn.piesat.service.intf;

import cn.piesat.dto.MailmsgConfigDTO;

import java.util.List;
import java.util.Map;

/**
 * 手机短信和邮件基本配置的一些方法      服务层接口
 * @author 奚好雷
 *
 */
public interface MailmsgConfigService {
	
	/**
	 * 	添加手机短信基本配置信息
	 * @param dto
	 * @return
	 */
	MailmsgConfigDTO addSmsMessage(MailmsgConfigDTO dto);
	
	/**
	 * 	修改手机短信的基本配置信息
	 * @param dto
	 * @return
	 */
	MailmsgConfigDTO updateSmsMessage(MailmsgConfigDTO dto);
	
	/**
	 * 	添加邮箱的基本配置信息
	 * @param dto
	 * @return
	 */
	MailmsgConfigDTO addEmailMessage(MailmsgConfigDTO dto);
	
	/**
	 * 	修改邮箱的基本配置信息
	 * @param dto
	 * @return
	 */
	MailmsgConfigDTO updateEmailMessage(MailmsgConfigDTO dto);
	
	/**
	 * 	查询同一配置类型的所有信息 sms mail
	 * @param configType 类型 
	 * @param page 页数
	 * @param size 每页数量
	 * @return
	 */
	Map<String, Object> getAllMessage(String configType,Integer page,Integer size);
	
	/**
	 * 	根据类型和状态查询信息
	 * @param configType 类型 mail sms
	 * @param state 状态 0 启用 1 禁用 
	 * @return
	 */
	List<MailmsgConfigDTO> getTypeAndStateMessage(String configType, Integer state);
	
	/**
	 * 	根据ID删除信息
	 * @param id
	 */
	void delById(String id);
	
	/**
	 * 	此ID是否存在
	 * @param id
	 * @return
	 */
	boolean exists(String id);
	
	/**
	 * 	根据ID查询
	 * @param id
	 * @return
	 */
	MailmsgConfigDTO findById(String id);
	
	/**
	 * 根据配置类型(sms,mail)和平台类型查询
	 * @param configType
	 * @param platFormType
	 * @return
	 */
	List<MailmsgConfigDTO> findByConfigTypeAndPlatFormType(String configType, String platFormType);
	
}
